package lambda;

import collection.Point;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class LambdaDemo01 {
    public static void main(String[] args) {
        Point p1=new Point(10,20);
        Point p2=new Point(5,30);
        List<Point> list=new ArrayList<>();
        list.add(p1);
        list.add(p2);
        //调用Collections.sort(List<T> list,Comparator cc)方法对Point对象排序
        //自定义内部类比较器
        Comparator<Point> comparator1=new Comparator<Point>() {
            @Override
            public int compare(Point o1, Point o2) {
                return o1.getX()-o2.getX();
            }
        };
        //Lambda表达式基本应用(省略内部类对象的构建和方法重写代码)
        Comparator<Point> comparator2=(Point o1, Point o2)->{
                return o1.getX()-o2.getX();
        };
        //Lambda表达式中的参数类型和return可以省略(前提是方法体只有一条语句)
        Collections.sort(list,(o1, o2)->o1.getX()-o2.getX());
    };
}


